Images are normally displayed by a CRT type display using an additive format such as the red, green, blue (RGB) format. In this format, separate color information is provided for each of the red, green and blue primary colors and when displayed together, they form any desired color to be displayed.
However, when it is desired to print out a color representation of the image displayed by a color display, a subtractive color format is generally used. One such subtractive format is the cyan, magenta, yellow and black (CMYK) format. Such a subtractive format is commonly used in color printing devices and in particular is used in the Canon CLC500 color laser copier/printer manufactured by Canon Inc.
In theory the relationship between additive colors and subtractive colors is simple, as cyan, magenta and yellow are simply the complimentary colors to red, green and blue respectively. They can be expressed by: ##EQU1##
Black (K) is a function of all three additive primaries as follows: ##EQU2##
where r, g and b are co-efficients determined by relative human perception of red, green and blue. PA1 3.1 General Arrangement of Plural Stream Architecture PA1 3.2 Host/Co-processor Queuing PA1 3.3 Register Description of Co-processor PA1 3.4 Format of Plural Streams PA1 3.5 Determine Current Active Stream PA1 3.6 Fetch Instruction of Current Active Stream PA1 3.7 Decode and Execute Instruction PA1 3.8 Update Registers of Instruction Controller PA1 3.9 Semantics of the Register Access Semaphore PA1 3.10 Instruction Controller PA1 3.11 Description of a Modules Local Register File PA1 3.12 Register Read/Write Handling PA1 3.13 Memory Area Read/Write Handling PA1 3.14 CBus Structure PA1 3.15 Co-processor Data Types and Data Manipulation PA1 3.16 Data Normalization Circuit PA1 3.17 Image Processing Operations of Accelator Card PA1 3.18 Modules of the Accelerator Card
In practice the above equations are inadequate and the amount of cyan for example is a complex non-linear function on the amount of red, green and blue. Similar relationships exist, for the other primary colors. Non-linear transfer functions in the printing mechanism require a non-linear transfer function during conversion between the two color formats.
One method for performing color conversion is to use a large look-up table storing a corresponding output color value for each possible input color value. However such a method requires a large amount of storage space. For example, in a color conversion from a 24 bit RGB input color space to a 32 bit CYMK output color space, the total storage for each color pass of the output requires 2.sup.8.times.2.sup.8.times.2.sup.8 (16 Mbytes). Where all primary color components of the 32 bit CYMK color space are simultaneously mapped from the 24 bit RGB input color space, the look-up table requires 64 Mbytes which is obviously excessive.
Functional interpolation has particular application in color conversion where it is designed to convert from one color space, for example RGB color space to a second color space, for example CYMK color space. Examples of such color conversion are illustrated in U.S. Pat. Nos. 4,837,722, 3,893,166, and 4,511,989. The operation of the color conversion process being normally facilitated by providing for a sparsely array of output color values between which interpolation is to be carried out.
Normally, even though a sparsely array of values is utilised, a large memory is still required. Unfortunately, in a modern microprocessor architecture, there is often limited space on board a chip for the storage of memory arrays. This problem is accentuated when it is desired to produce multiple output color space values simultaneously, for example to interpolate each pixel in RGB space directly into corresponding values in CYMK space. In such a case, the amount of storage space required can be multiplied by a factor of four.